python基础第十三节
在之前的章节中, 我们学习了列表, 元组, 字符串. 已经可以覆盖七成的使用场景了.
那么为什么还要学习集合类型呢.
列表: 有序可变, 元素可重复.
元组: 有序不可变, 元素可重复.
字符串: 有序不可变, 字符可重复.
以上数据类型有一个共同点, 就是都支持元素可重复.
当我们需要一个数据集, 且不允许重复的时候, 就可以使用到集合.
集合的特点:
- 可以容纳多个元素.
- 可以容纳不同类型的元素.
- 无序的.
- 不允许重复元素.
- 是可变的.
13.1 集合的定义
变量名称 = {元素1, 元素2, 元素3, ....}
# 定义空集合
变量名称 = set()
注意: Python的集合(set)可以容纳任何可哈希(hashable)的数据类型的元素,例如数字、字符串、元组等. 不可哈希(unhashable)的数据类型,例如列表、字典、集合等,则不能作为集合的元素. 这是因为集合的元素需要能够进行哈希运算,以便于进行快速的查找和去重.
13.2 集合的常用操作
- 添加新元素: set.add(元素), 将指定的元素添加到集合内.
- 删除元素: set.remove(元素), 将指定的元素从集合内删除.
- 从集合中随机取出元素: set.pop(). 有返回值.
- 从集合中删除一个元素, 如果该元素不存在, 则什么也不做: set.discard(元素)
- 清空集合: set.clear()
- 获取2个集合的差集: set1.difference(set2), 取出集合1和集合2的差集(集合1有但是集合2没有的元素.) 返回一个新集合, 集合1和集合2保持不变.
- 消除2个集合的差集: set1.difference_update(set2): 对比2个集合, 在集合1内删除和集合2相同的元素.
- 合并2个集合: set1.union(set2). 将集合1和集合2合并组成新的集合. 返回一个新的集合, 集合1和集合2保持不变.
- 两个集合中的交集: set.intersection(set1)
- 集合1.issubset(集合2): 判断集合1是否为集合2的子集. 如果是子集, 则返回true
- 集合1.isdisjoint(集合2): 判断集合1和集合2是否包含相同的元素.
- len: 返回集合中元素的个数.